<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /* 
        在开发过程中应该尽量减少直接在全局作用域中编写代码

        所以我们的代码要尽量编写在局部作用域中

        如果用let声明的变量，可以使用{} 来创建块级作用域

        立即执行函数（IIFE）
         - 立即是一个匿名的函数，并它只会调用一次
         - 可以利用IIFE来创建一个一次性的函数作用域，避免变量冲突的问题
    */
    {
      var a = 10;
    }
    {
      let a = 20;
    }
    console.log(a, "a");
    (function () {
      console.log(a, "自执行函数");
    })();
    (function s123s() {
      console.log("122");
    })();
    (function () {
      console.log("-=-=1");
    })();
  </script>
</html>
